import axios from "axios";
import { ElMessage } from "element-plus";
import router from "@/router";
// 创建一个axios实例
const service = axios.create({
  // 基地址
  baseURL: import.meta.env.VITE_APP_BASE_URL,
  //超时时间 单位毫秒
  timeout: 10000
});
service.defaults.withCredentials = true;


// 请求拦截器 请求成功执行第一个，失败第二个
service.interceptors.request.use(
  (config) => {
    //获取token sessionStorage
    let user = JSON.parse(sessionStorage.getItem("user"))
    if (user){
      config.headers.Token =user.token;
    }
    // config.headers.Token = sessionStorage.getItem("token");
    return config;

  },
  (error) => {
    console.log("请求失败");
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  (response) => {
    console.log("响应成功",);
    //获取响应数据
    const {msg, code} = response.data;
    if (code === 0) {
      return response.data;
    } else {
      console.log(msg==='未登录');
      if (msg==='未登录'){
        sessionStorage.clear();
        router.push({
          path:'/login'
        })
      }

      ElMessage({
        type: "error",
        message: msg
      });
    }
  },
  (error) => {
    if (error.request.status === 401){
      router.push({
        path:'/login'
      })
      ElMessage({
        type: "error",
        message: '未登录'
      });
    }

    // return Promise.reject(error);
  }
);

export default service;
